package com.wms.mapper;


import com.wms.dto.SaveActualQtyDTO;
import com.wms.entity.StockTakingTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface StockTakingTaskMapper {
    /**
     * 查询未完成的任务列表
     * @return
     */
    List<StockTakingTask> queryAllNoFinish();

    /**
     * 查询已完成的任务列表
     * @return
     */
    List<StockTakingTask> queryAllFinish();

    /**
     * 根据任务编号删除任务(待盘点时才可以删除)
     * @param code
     * @return
     */
    int deleteTaskByTaskCode(String code);

    /**
     * 根据任务编号查询任务状态
     * @param code
     * @return
     */
    int queryTaskStatusByCode(String code);

    /**
     * 任务单作废时seq+1
     * @param code
     * @return
     */
    int updateTaskSeqByCode(String code);

    /**
     * 任务单作废
     * @param code
     * @return
     */
    int updateTaskIscancelByCode(@Param("code") String code);

    /**
     * 保存实际盘点数量后如果status=3,则更新AuditStatus为待审核
     * @param taskCode 任务编码
     * @return
     */
    int updateTaskAuditStatus(@Param("taskCode") String taskCode);

    /**
     * 打回重盘时选择相同的盘点人则修改任务状态和审核状态
     * @param taskId
     * @return
     */
    int updateTaskStatusAndAuditStatus(@Param("taskId") Integer taskId);
    
    /**
     * 打回重盘时选择不同的盘点人则修改任务状态为已完成、已作废、打回重盘
     * @param taskId
     * @return
     */
    int updateTaskStatusForDifferentUser(@Param("taskId") Integer taskId);

    /**
     * 根据任务id查询任务(打回重盘用)
     * @param taskId
     * @return
     */
    StockTakingTask queryTaskById(Integer taskId);
}
